package co.edu.uniquindio.ingesis.logica;

import java.util.LinkedList;

public class Tablero 
{
	//Atributos
	/**
	 * representa el alto del tablero
	 */
	protected int alto=500;
	
	/**
	 * representa el ancho del tablero
	 */
	protected int ancho=500;
	
	/**
	 * representa la lista de pelotas que se estan moviendo en el tablero
	 */
	protected LinkedList<Pelota>listaPelotas;
	
	protected LinkedList<HiloPelota> hilosPelotas;
	
	protected Thread myHilo;
	
	/**
	 * representa la clase pelota 
	 */
	protected Pelota laPelota;
	
	public Tablero()
	{
		listaPelotas= new LinkedList<Pelota>();
		hilosPelotas= new LinkedList<HiloPelota>();
		laPelota = new Pelota();
		listaPelotas.add(laPelota);
		HiloPelota esteHiloP = new HiloPelota(laPelota);
		hilosPelotas.add(esteHiloP);
		
		
	}
	
	public void nuevaPelota()
	{
		Pelota estaPelota= new Pelota();
		
		double variableX=estaPelota.getCoordenadaX()*Math.random();
		double variableY=estaPelota.getCoordenadaY()*Math.random();

		int verdaderoX=(int)variableX;
 		int verdaderoY=(int)variableY;
		
		estaPelota.setCoordenadaX(verdaderoX);
		estaPelota.setCoordenadaY(verdaderoY);
		
		estaPelota.setLocation(verdaderoX, verdaderoY);
		
		listaPelotas.add(estaPelota);
		HiloPelota nuevoHiloP = new HiloPelota(estaPelota);
		hilosPelotas.add(nuevoHiloP);
	}
	
//	public void agregarPelota()
//	{
//		Pelota nuevaPelota= new Pelota();
//		nuevaPelota.setCoordenadaX(100);
//		nuevaPelota.setCoordenadaY(100);
//		
//		listaPelotas.add(nuevaPelota);
//		
//		HiloPelota esteHiloP = new HiloPelota(nuevaPelota);
//		hilosPelotas.add(esteHiloP);
//		for (int i = 0; i < listaPelotas.size(); i++) 
//		{
//			System.out.println(listaPelotas.size());
//		}
//	}
//	
	public void iniciarHilos()
	{
		for (int i = 0; i < hilosPelotas.size(); i++) 
		{	
			myHilo=new Thread( hilosPelotas.get(i)) ;
			myHilo.start();
		}
	}
	
	public void finalizarHilos()
	{
		
	}

	public LinkedList<Pelota> getListaPelotas() {
		return listaPelotas;
	}

	public void setListaPelotas(LinkedList<Pelota> listaPelotas) {
		this.listaPelotas = listaPelotas;
	}

	public LinkedList<HiloPelota> getHilosPelotas() {
		return hilosPelotas;
	}

	public void setHilosPelotas(LinkedList<HiloPelota> hilosPelotas) {
		this.hilosPelotas = hilosPelotas;
	}

	public int getAlto()
	{
		return alto;
	}

	public void setAlto(int alto)
	{
		this.alto = alto;
	}

	public int getAncho() 
	{
		return ancho;
	}

	public void setAncho(int ancho) 
	{
		this.ancho = ancho;
	}

	public Pelota getLaPelota()
	{
		return laPelota;
	}

	public void setLaPelota(Pelota laPelota)
	{
		this.laPelota = laPelota;
	}
	
}
